package com.eoekun.dashboard.dao.dataobject;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.eoekun.dashboard.model.BaseDomain;

public class Dashboard extends BaseDomain implements Serializable {
    /**
     * (默认值:无)
     */
    private Long taskId;

    /**
     * 任务名称(默认值:)
     */
    @NotNull
    @Size(min = 0, max = 200 , message = "长度必须在{min}和{max}之间")
    private String taskName;

    /**
     * 任务类型: 1. 日常需求 2. 修复 3. 优化(默认值:1)
     */
    @NotNull
    private Integer taskType;

    /**
     * 优先级,值越大,优先级越高(默认值:1)
     */
    @NotNull
    private Integer priority;

    /**
     * 是否需要文档: 0. 不需要 1. 需要(默认值:0)
     */
    @NotNull
    private Integer isNeedDoc;

    /**
     * 设计文档地址(默认值:无)
     */
    @Size(min = 0, max = 200 , message = "长度必须在{min}和{max}之间")
    private String docLink;

    /**
     * 是否需要代码评审: 0. 不需要 1. 需要(默认值:0)
     */
    @NotNull
    private Integer isNeedReview;

    /**
     * jira编号或地址(默认值:无)
     */
    @Size(min = 0, max = 200 , message = "长度必须在{min}和{max}之间")
    private String jiraId;

    /**
     * 应用(默认值:无)
     */
    @Size(min = 0, max = 50 , message = "长度必须在{min}和{max}之间")
    private String application;

    /**
     * 开发人员(默认值:无)
     */
    @Size(min = 0, max = 200 , message = "长度必须在{min}和{max}之间")
    private String developer;

    /**
     * 测试人员(默认值:无)
     */
    @Size(min = 0, max = 100 , message = "长度必须在{min}和{max}之间")
    private String testers;

    /**
     * 工作量,天(默认值:1.0)
     */
    private BigDecimal workDays;

    /**
     * 进度,0~100(默认值:0)
     */
    private Integer progress;

    /**
     * 状态:0.需求阶段,1.排期,2.开发,3.提测,4.测试,5.发布,6.上线,7.延期(默认值:0)
     */
    private Integer status;

    /**
     * 月份,yyyymm(默认值:无)
     */
    private Integer month;

    /**
     * 计划开发日期(默认值:无)
     */
    private Date planStartDate;

    /**
     * 实际开发日期(默认值:无)
     */
    private Date realStartDate;

    /**
     * 计划完成日期(默认值:无)
     */
    private Date planEndDate;

    /**
     * 实际完成日期(默认值:无)
     */
    private Date realEndDate;

    /**
     * 计划测试完成日期(默认值:无)
     */
    private Date planTestDate;

    /**
     * 实际测试完成日期(默认值:无)
     */
    private Date realTestDate;

    /**
     * 计划上线日期(默认值:无)
     */
    private Date planOnlieDate;

    /**
     * 实际上线日期(默认值:无)
     */
    private Date realOnlieDate;

    /**
     * 备注(默认值:无)
     */
    @Size(min = 0, max = 500 , message = "长度必须在{min}和{max}之间")
    private String remark;

    /**
     * 是否延期: 0. 未延期 1. 已延期(默认值:0)
     */
    @NotNull
    private Integer isDelay;

    /**
     * 延期原因(默认值:无)
     */
    @Size(min = 0, max = 500 , message = "长度必须在{min}和{max}之间")
    private String delayReason;

    /**
     * 小组(默认值:无)
     */
    @Size(min = 0, max = 50 , message = "长度必须在{min}和{max}之间")
    private String team;

    /**
     * 创建人id(默认值:无)
     */
    private Long userId;

    /**
     * 创建人姓名(默认值:无)
     */
    @Size(min = 0, max = 50 , message = "长度必须在{min}和{max}之间")
    private String username;

    /**
     * 创建时间(默认值:CURRENT_TIMESTAMP)
     */
    @NotNull
    private Date createTime;

    /**
     * 修改时间(默认值:无)
     */
    private Date updateTime;

    /**
     * 更新人id(默认值:无)
     */
    private Long updateUserId;

    /**
     * 更新人姓名(默认值:无)
     */
    @Size(min = 0, max = 50 , message = "长度必须在{min}和{max}之间")
    private String updateUsername;

    /**
     * 是否已删除: 0. 未删除 1. 已删除(默认值:0)
     */
    @NotNull
    private Integer isDeleted;

    private static final long serialVersionUID = 1L;

    /**
     * 
     * @return task_id 
     */
    public Long getTaskId() {
        return taskId;
    }

    /**
     * 
     * @param taskId 
     */
    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }

    /**
     * 任务名称
     * @return task_name 任务名称
     */
    public String getTaskName() {
        return taskName;
    }

    /**
     * 任务名称
     * @param taskName 任务名称
     */
    public void setTaskName(String taskName) {
        this.taskName = taskName == null ? null : taskName.trim();
    }

    /**
     * 任务类型: 1. 日常需求 2. 修复 3. 优化
     * @return task_type 任务类型: 1. 日常需求 2. 修复 3. 优化
     */
    public Integer getTaskType() {
        return taskType;
    }

    /**
     * 任务类型: 1. 日常需求 2. 修复 3. 优化
     * @param taskType 任务类型: 1. 日常需求 2. 修复 3. 优化
     */
    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }

    /**
     * 优先级,值越大,优先级越高
     * @return priority 优先级,值越大,优先级越高
     */
    public Integer getPriority() {
        return priority;
    }

    /**
     * 优先级,值越大,优先级越高
     * @param priority 优先级,值越大,优先级越高
     */
    public void setPriority(Integer priority) {
        this.priority = priority;
    }

    /**
     * 是否需要文档: 0. 不需要 1. 需要
     * @return is_need_doc 是否需要文档: 0. 不需要 1. 需要
     */
    public Integer getIsNeedDoc() {
        return isNeedDoc;
    }

    /**
     * 是否需要文档: 0. 不需要 1. 需要
     * @param isNeedDoc 是否需要文档: 0. 不需要 1. 需要
     */
    public void setIsNeedDoc(Integer isNeedDoc) {
        this.isNeedDoc = isNeedDoc;
    }

    /**
     * 设计文档地址
     * @return doc_link 设计文档地址
     */
    public String getDocLink() {
        return docLink;
    }

    /**
     * 设计文档地址
     * @param docLink 设计文档地址
     */
    public void setDocLink(String docLink) {
        this.docLink = docLink == null ? null : docLink.trim();
    }

    /**
     * 是否需要代码评审: 0. 不需要 1. 需要
     * @return is_need_review 是否需要代码评审: 0. 不需要 1. 需要
     */
    public Integer getIsNeedReview() {
        return isNeedReview;
    }

    /**
     * 是否需要代码评审: 0. 不需要 1. 需要
     * @param isNeedReview 是否需要代码评审: 0. 不需要 1. 需要
     */
    public void setIsNeedReview(Integer isNeedReview) {
        this.isNeedReview = isNeedReview;
    }

    /**
     * jira编号或地址
     * @return jira_id jira编号或地址
     */
    public String getJiraId() {
        return jiraId;
    }

    /**
     * jira编号或地址
     * @param jiraId jira编号或地址
     */
    public void setJiraId(String jiraId) {
        this.jiraId = jiraId == null ? null : jiraId.trim();
    }

    /**
     * 应用
     * @return application 应用
     */
    public String getApplication() {
        return application;
    }

    /**
     * 应用
     * @param application 应用
     */
    public void setApplication(String application) {
        this.application = application == null ? null : application.trim();
    }

    /**
     * 开发人员
     * @return developer 开发人员
     */
    public String getDeveloper() {
        return developer;
    }

    /**
     * 开发人员
     * @param developer 开发人员
     */
    public void setDeveloper(String developer) {
        this.developer = developer == null ? null : developer.trim();
    }

    /**
     * 测试人员
     * @return testers 测试人员
     */
    public String getTesters() {
        return testers;
    }

    /**
     * 测试人员
     * @param testers 测试人员
     */
    public void setTesters(String testers) {
        this.testers = testers == null ? null : testers.trim();
    }

    /**
     * 工作量,天
     * @return work_days 工作量,天
     */
    public BigDecimal getWorkDays() {
        return workDays;
    }

    /**
     * 工作量,天
     * @param workDays 工作量,天
     */
    public void setWorkDays(BigDecimal workDays) {
        this.workDays = workDays;
    }

    /**
     * 进度,0~100
     * @return progress 进度,0~100
     */
    public Integer getProgress() {
        return progress;
    }

    /**
     * 进度,0~100
     * @param progress 进度,0~100
     */
    public void setProgress(Integer progress) {
        this.progress = progress;
    }

    /**
     * 状态:0.需求阶段,1.排期,2.开发,3.提测,4.测试,5.发布,6.上线,7.延期
     * @return status 状态:0.需求阶段,1.排期,2.开发,3.提测,4.测试,5.发布,6.上线,7.延期
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 状态:0.需求阶段,1.排期,2.开发,3.提测,4.测试,5.发布,6.上线,7.延期
     * @param status 状态:0.需求阶段,1.排期,2.开发,3.提测,4.测试,5.发布,6.上线,7.延期
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 月份,yyyymm
     * @return month 月份,yyyymm
     */
    public Integer getMonth() {
        return month;
    }

    /**
     * 月份,yyyymm
     * @param month 月份,yyyymm
     */
    public void setMonth(Integer month) {
        this.month = month;
    }

    /**
     * 计划开发日期
     * @return plan_start_date 计划开发日期
     */
    public Date getPlanStartDate() {
        return planStartDate;
    }

    /**
     * 计划开发日期
     * @param planStartDate 计划开发日期
     */
    public void setPlanStartDate(Date planStartDate) {
        this.planStartDate = planStartDate;
    }

    /**
     * 实际开发日期
     * @return real_start_date 实际开发日期
     */
    public Date getRealStartDate() {
        return realStartDate;
    }

    /**
     * 实际开发日期
     * @param realStartDate 实际开发日期
     */
    public void setRealStartDate(Date realStartDate) {
        this.realStartDate = realStartDate;
    }

    /**
     * 计划完成日期
     * @return plan_end_date 计划完成日期
     */
    public Date getPlanEndDate() {
        return planEndDate;
    }

    /**
     * 计划完成日期
     * @param planEndDate 计划完成日期
     */
    public void setPlanEndDate(Date planEndDate) {
        this.planEndDate = planEndDate;
    }

    /**
     * 实际完成日期
     * @return real_end_date 实际完成日期
     */
    public Date getRealEndDate() {
        return realEndDate;
    }

    /**
     * 实际完成日期
     * @param realEndDate 实际完成日期
     */
    public void setRealEndDate(Date realEndDate) {
        this.realEndDate = realEndDate;
    }

    /**
     * 计划测试完成日期
     * @return plan_test_date 计划测试完成日期
     */
    public Date getPlanTestDate() {
        return planTestDate;
    }

    /**
     * 计划测试完成日期
     * @param planTestDate 计划测试完成日期
     */
    public void setPlanTestDate(Date planTestDate) {
        this.planTestDate = planTestDate;
    }

    /**
     * 实际测试完成日期
     * @return real_test_date 实际测试完成日期
     */
    public Date getRealTestDate() {
        return realTestDate;
    }

    /**
     * 实际测试完成日期
     * @param realTestDate 实际测试完成日期
     */
    public void setRealTestDate(Date realTestDate) {
        this.realTestDate = realTestDate;
    }

    /**
     * 计划上线日期
     * @return plan_onlie_date 计划上线日期
     */
    public Date getPlanOnlieDate() {
        return planOnlieDate;
    }

    /**
     * 计划上线日期
     * @param planOnlieDate 计划上线日期
     */
    public void setPlanOnlieDate(Date planOnlieDate) {
        this.planOnlieDate = planOnlieDate;
    }

    /**
     * 实际上线日期
     * @return real_onlie_date 实际上线日期
     */
    public Date getRealOnlieDate() {
        return realOnlieDate;
    }

    /**
     * 实际上线日期
     * @param realOnlieDate 实际上线日期
     */
    public void setRealOnlieDate(Date realOnlieDate) {
        this.realOnlieDate = realOnlieDate;
    }

    /**
     * 备注
     * @return remark 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 备注
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    /**
     * 是否延期: 0. 未延期 1. 已延期
     * @return is_delay 是否延期: 0. 未延期 1. 已延期
     */
    public Integer getIsDelay() {
        return isDelay;
    }

    /**
     * 是否延期: 0. 未延期 1. 已延期
     * @param isDelay 是否延期: 0. 未延期 1. 已延期
     */
    public void setIsDelay(Integer isDelay) {
        this.isDelay = isDelay;
    }

    /**
     * 延期原因
     * @return delay_reason 延期原因
     */
    public String getDelayReason() {
        return delayReason;
    }

    /**
     * 延期原因
     * @param delayReason 延期原因
     */
    public void setDelayReason(String delayReason) {
        this.delayReason = delayReason == null ? null : delayReason.trim();
    }

    /**
     * 小组
     * @return team 小组
     */
    public String getTeam() {
        return team;
    }

    /**
     * 小组
     * @param team 小组
     */
    public void setTeam(String team) {
        this.team = team == null ? null : team.trim();
    }

    /**
     * 创建人id
     * @return user_id 创建人id
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * 创建人id
     * @param userId 创建人id
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * 创建人姓名
     * @return username 创建人姓名
     */
    public String getUsername() {
        return username;
    }

    /**
     * 创建人姓名
     * @param username 创建人姓名
     */
    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    /**
     * 创建时间
     * @return create_time 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 修改时间
     * @return update_time 修改时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 修改时间
     * @param updateTime 修改时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 更新人id
     * @return update_user_id 更新人id
     */
    public Long getUpdateUserId() {
        return updateUserId;
    }

    /**
     * 更新人id
     * @param updateUserId 更新人id
     */
    public void setUpdateUserId(Long updateUserId) {
        this.updateUserId = updateUserId;
    }

    /**
     * 更新人姓名
     * @return update_username 更新人姓名
     */
    public String getUpdateUsername() {
        return updateUsername;
    }

    /**
     * 更新人姓名
     * @param updateUsername 更新人姓名
     */
    public void setUpdateUsername(String updateUsername) {
        this.updateUsername = updateUsername == null ? null : updateUsername.trim();
    }

    /**
     * 是否已删除: 0. 未删除 1. 已删除
     * @return is_deleted 是否已删除: 0. 未删除 1. 已删除
     */
    public Integer getIsDeleted() {
        return isDeleted;
    }

    /**
     * 是否已删除: 0. 未删除 1. 已删除
     * @param isDeleted 是否已删除: 0. 未删除 1. 已删除
     */
    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }
}